<?php
/**
 * Database Manager
 * 
 * @author Alexey Strelnikoff <zog@zoggi.net>
 */

namespace Zoggi\Database;

/**
 * Класс с результатом MySQL запроса
 *
 */
class MysqlQuery {

	/**
	 * @var mysql result
	 */
	private $queryResult;

	/**
	 * возвращает объект с результатом MySQL запроса
	 * 
	 * @param resource $queryResult
	 *
	 * @return MysqlQuery
	 */
	public function __construct( $queryResult ) {
		$this->queryResult = &$queryResult;
	}

	/**
	 * Возвращает mysql_fetch_assoc()
	 * 
	 * @return array
	 */
	public function fetchRow() {
		return mysql_fetch_assoc($this->queryResult);
	}

	/**
	 * Возвращает mysql_fetch_assoc
	 * Алиас для $this->fetchRow
	 * 
	 * @return array
	 */
	public function fetchAssoc() {
		return $this->fetchRow();
	}

	/**
	 * Возвращает mysql_fetch_object()
	 * 
	 * @return \stdClass
	 */
	public function fetchObject() {
		return mysql_fetch_object($this->queryResult);
	}

	/**
	 * Возвращает количество строк из mysql result (mysql_num_rows)
	 *
	 * @return int
	 */
	public function numRows() {
		return mysql_num_rows($this->queryResult);
	}

	/**
	 * Возвращает ассициативный массив полученный в результате запроса
	 * 
	 * @return array
	 */
	public function getArray() {

		$data = array();
		while ( $r = $this->fetchRow() ) {
			$data[] = $r;
		}
		return $data;
	}

}